package com.mdb.open.trade.domain.po.trade;

/*
* Copyright (C), 2017-2019 澳发科技(MDB)
* FileName: MerchantInfoService.java
* Author:   you.yichao
* Date:     2019-11-19
* History:
* <author>          <time>          <version>          <desc>
* you.yichao         2019-11-19          V1.00             代码生成器初始生成代码
* -----------------------------------------------------------
* 作者姓名           修改时间           版本号            描述
*/


import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.*;
import com.mdb.bc.api.data.DataObjectBase;
import com.mdb.open.common.enums.trade.status.MerDisableStatusEnum;
import com.mdb.open.common.enums.trade.status.MerchantApproveStatusEnum;
import com.mdb.open.common.enums.trade.status.MerchantStatusEnum;
import com.mdb.open.common.enums.trade.type.MerchantsTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
* 类描述：
*  商户信息实体类
*
* @author you.yichao
* @date 2019-11-19
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tf_merchant_info")
public class MerchantInfo extends DataObjectBase {

    private static final long serialVersionUID = 1L;
    /**
    * 主键ID
    */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
    * 客户编码(归属一级)
    */
    private String customerCode;

    /**
    * 客户名称(归属一级)
    */
    private String customerName;

    /**
    * 商户客户编码
    */
    private String mcustomerCode;

    /**
    * 商户号
    */
    private String merchantNo;

    /**
     * 商户类型
     */
    @ApiModelProperty(value = "商户类型")
    @TableField("merchant_type")
    private MerchantsTypeEnum merchantType;

    /**
    * 商户名称(中文)
    */
    private String merchantNameCn;

    /**
    * 商户名称(英文)
    */
    private String merchantNameEn;

    /**
    * 商户证件号码(社会信用代码/营业执照代码/个人身份证)
    */
    private String merchantCertNumber;

    /**
    * 商户平台子账号
    */
    private String platformAcc;

    /**
    * 联系人姓名
    */
    private String contractName;

    /**
    * 联系人号码
    */
    private String contractPhone;

    /**
    * 商户状态
    */
    private MerchantStatusEnum status;

    /**
    * 商户融资状态
    */
    private MerDisableStatusEnum disableStatus;

    /**
    * 备注
    */
    private String remarks;

    /**
    * 审核状态
    */
    private MerchantApproveStatusEnum approveStatus;

    /**
    * 默认商户状态
    */
    private boolean defaultStatus;

    /**
    * 创建时间
    */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
    * 更新时间
    */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
    * 乐观锁版本号
    */
    @Version
    private Integer version;

    /**
    * 删除标识
    */
    @TableLogic
    private boolean deleted;

    /**
     * 获取商业名称: 中英葡的顺序提供
     *
     * @return
     */
    public String getMerchantName() {
        if (StrUtil.isNotBlank(this.merchantNameCn)) {
            return this.merchantNameCn;
        } else if (StrUtil.isNotBlank(this.merchantNameEn)) {
            return this.merchantNameEn;
        }
        return "";
    }

}
